# 以下为系统基尼系数公式
# Gini = 1 - (p1^2 + p2^2 + ... + pn^2)
# p1 ~ pn: 代表系统成员的概率
# 基尼系数用于衡量系统的稳定性，越小越稳定
# 例如: 经济学常用基尼系数衡量贫富差距，和幸福指数
# 使用 numpy 完成以下要求
# 1. 随机 30 个整数，整数取值范围 [0, 5]
# 2. 计算这 30 个整数的基尼系数
# 注意: 此处的 p 概率代表的是每个数字出现的概率，例如: p1 代表系统中 0 出现的概率，p2 代表系统中 1 出现的概率，等等

import numpy as np

np.random.seed(100)
# 生成30个[0,5]范围内的随机整数
arr = np.random.randint(0, 6, (30,))

# 计算每个数字出现的次数
counts = np.bincount(arr)

# 计算每个数字出现的概率
probabilities = counts / len(arr)

# 计算基尼系数
Gini = 1 - np.sum(probabilities ** 2)

print("随机生成的30个整数:", arr)
print("每个数字出现的次数:", counts)
print("每个数字出现的概率:", probabilities)
print("基尼系数:", Gini)
